/**
 * Created by Sean Patrick Floyd (<a href="mailto:sean@mostlymagic.com">sean@mostlymagic.com</a>)
 * on 20.05.2010.
 */
package com.google.code.imds4j.api;

import java.util.Collection;


public interface DataStructure<K, V> {
    Query<V> and(Query<V> first, Query<V> second);

    Collection<K> keys();

    Query<V> not(Query<V> inner);

    Query<V> or(Query<V> first, Query<V> second);

    void put(V value, K... keys);

    void removeKey(K key);

    void removeValue(V value);

    Query<V> search(K key);

    Collection<V> values();

    Collection<V> values(K key);
}